package com.pengy.shengxian.mapper;

import com.pengy.shengxian.entity.PsdDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface PsdDetailMapper {
    
    /**
     * 插入配送单明细信息
     */
    int insert(PsdDetail psdDetail);
    
    /**
     * 批量插入配送单明细信息
     */
    int batchInsert(@Param("list") List<PsdDetail> psdDetailList);
    
    /**
     * 根据ID查询配送单明细信息
     */
    PsdDetail selectById(@Param("id") Long id);
    
    /**
     * 根据配送单主表ID查询明细信息
     */
    List<PsdDetail> selectByPsdInfoId(@Param("outpsdInfoId") Long outpsdInfoId);
    
    /**
     * 根据配送单号查询明细信息
     */
    List<PsdDetail> selectByPsdInfoCode(@Param("psdInfoCode") String psdInfoCode);
    
    /**
     * 查询所有配送单明细信息
     */
    List<PsdDetail> selectAll();
    
    /**
     * 更新配送单明细信息
     */
    int update(PsdDetail psdDetail);
    
    /**
     * 根据ID删除配送单明细信息
     */
    int deleteById(@Param("id") Long id);
    
    /**
     * 根据配送单主表ID删除明细信息
     */
    int deleteByPsdInfoId(@Param("outpsdInfoId") Long outpsdInfoId);
    
    /**
     * 根据配送单主表ID批量更新规格字段
     */
    int batchUpdateSpecsByPsdInfoId(@Param("outpsdInfoId") Long outpsdInfoId);
    
    /**
     * 根据配送单号批量更新规格和类型
     */
    int batchUpdateSpecsAndTypeByPsdInfoCode(@Param("psdInfoCode") String psdInfoCode);
    
    /**
     * 根据主表ID和用途删除明细
     */
    int deleteByPsdInfoIdAndPurpose(@Param("outpsdInfoId") Long outpsdInfoId, @Param("purpose") String purpose);
} 